<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Class execution_monitor</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Boost.Test">
<link rel="up" href="../header/boost/test/execution_monitor_hpp.html" title="Header &lt;boost/test/execution_monitor.hpp&gt;">
<link rel="prev" href="execution_exception/error_code.html" title="Type error_code">
<link rel="next" href="system_error.html" title="Class system_error">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="execution_exception/error_code.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../header/boost/test/execution_monitor_hpp.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="system_error.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="boost.execution_monitor"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Class execution_monitor</span></h2>
<p>boost::execution_monitor — Function execution monitor. </p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../header/boost/test/execution_monitor_hpp.html" title="Header &lt;boost/test/execution_monitor.hpp&gt;">boost/test/execution_monitor.hpp</a>&gt;

</span>
<span class="keyword">class</span> <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
  <span class="comment">// <a class="link" href="execution_monitor.html#boost.execution_monitorconstruct-copy-destruct">construct/copy/destruct</a></span>
  <a class="link" href="execution_monitor.html#idm44970734567968-bb"><span class="identifier">execution_monitor</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="execution_monitor.html#idm44970734596080-bb">public member functions</a></span>
  <span class="keyword">int</span> <a class="link" href="execution_monitor.html#idm44970734595520-bb"><span class="identifier">execute</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">void</span> <a class="link" href="execution_monitor.html#idm44970734588752-bb"><span class="identifier">vexecute</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">void</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ExceptionType<span class="special">,</span> <span class="keyword">typename</span> ExceptionTranslator<span class="special">&gt;</span> 
    <span class="keyword">void</span> <a class="link" href="execution_monitor.html#idm44970734584640-bb"><span class="identifier">register_exception_translator</span></a><span class="special">(</span><span class="identifier">ExceptionTranslator</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
                                       <span class="identifier">const_string</span> <span class="special">=</span> <span class="identifier">const_string</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> 
                                       <span class="identifier">boost</span><span class="special">::</span><span class="identifier">type</span><span class="special">&lt;</span> <span class="identifier">ExceptionType</span> <span class="special">&gt;</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">void</span> <a class="link" href="execution_monitor.html#idm44970734574432-bb"><span class="identifier">erase_exception_translator</span></a><span class="special">(</span><span class="identifier">const_string</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ExceptionType<span class="special">&gt;</span> 
    <span class="keyword">void</span> <a class="link" href="execution_monitor.html#idm44970734571648-bb"><span class="identifier">erase_exception_translator</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type</span><span class="special">&lt;</span> <span class="identifier">ExceptionType</span> <span class="special">&gt;</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="execution_monitor.html#idm44970734567344-bb">private member functions</a></span>
  <span class="keyword">int</span> <a class="link" href="execution_monitor.html#idm44970734566768-bb"><span class="identifier">catch_signals</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>

  <span class="comment">// <a class="link" href="execution_monitor.html#boost.execution_monitorpublic-data-members">public data members</a></span>
  <span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a class="link" href="execution_monitor.html#boost.execution_monitor.p_catch_system_errors"><span class="identifier">p_catch_system_errors</span></a><span class="special">;</span>  <span class="comment">// Should monitor catch system errors. </span>
  <span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a class="link" href="execution_monitor.html#boost.execution_monitor.p_auto_start_dbg"><span class="identifier">p_auto_start_dbg</span></a><span class="special">;</span>  <span class="comment">// Should monitor try to attach debugger in case of caught system error. </span>
  <span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span> <span class="special">&gt;</span> <a class="link" href="execution_monitor.html#boost.execution_monitor.p_timeout"><span class="identifier">p_timeout</span></a><span class="special">;</span>  <span class="comment">// Specifies the seconds that elapse before a timer_error occurs. </span>
  <span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a class="link" href="execution_monitor.html#boost.execution_monitor.p_use_alt_stack"><span class="identifier">p_use_alt_stack</span></a><span class="special">;</span>  <span class="comment">// Should monitor use alternative stack for the signal catching. </span>
  <span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="special">&gt;</span> <a class="link" href="execution_monitor.html#boost.execution_monitor.p_detect_fp_exceptions"><span class="identifier">p_detect_fp_exceptions</span></a><span class="special">;</span>  <span class="comment">// Should monitor try to detect hardware floating point exceptions (!= 0), and which specific exception to catch. </span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="idm45283074139040"></a><h2>Description</h2>
<p>This class is used to uniformly detect and report an occurrence of several types of signals and exceptions, reducing various errors to a uniform <a class="link" href="execution_exception.html" title="Class execution_exception">execution_exception</a> that is returned to a caller.</p>
<p>The <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> behavior can be customized through a set of public parameters (properties) associated with the <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> instance. All parameters are implemented as public unit_test::readwrite_property data members of the class <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a>. </p>
<div class="refsect2">
<a name="idm45283074134400"></a><h3>
<a name="boost.execution_monitorconstruct-copy-destruct"></a><code class="computeroutput">execution_monitor</code> 
        public
       construct/copy/destruct</h3>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
<pre class="literallayout"><a name="idm44970734567968-bb"></a><span class="identifier">execution_monitor</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Default constructor initializes all execution monitor properties. </li></ol></div>
</div>
<div class="refsect2">
<a name="idm45283074128448"></a><h3>
<a name="idm44970734596080-bb"></a><code class="computeroutput">execution_monitor</code> public member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><span class="keyword">int</span> <a name="idm44970734595520-bb"></a><span class="identifier">execute</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> F<span class="special">)</span><span class="special">;</span></pre>Execution monitor entry point for functions returning integer value. <p>This method executes supplied function F inside a try/catch block and also may include other unspecified platform dependent error detection code.</p>
<p>This method throws an <code class="computeroutput"><a class="link" href="execution_exception.html" title="Class execution_exception">execution_exception</a></code> on an uncaught C++ exception, a hardware or software signal, trap, or other user exception.</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>execute() doesn't consider it an error for F to return a non-zero value. </p></td></tr>
</table></div>
<p>


</p>
<p><span class="bold"><strong>See Also:</strong></span></p>
<p>vexecute </p>
<p>
</p>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">F</code></span></p></td>
<td><p>Function to monitor </p></td>
</tr></tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Returns:</span></p></td>
<td><p>value returned by function call F(). </p></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">void</span> <a name="idm44970734588752-bb"></a><span class="identifier">vexecute</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">void</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> F<span class="special">)</span><span class="special">;</span></pre>Execution monitor entry point for functions returning void. <p>This method is semantically identical to execution_monitor::execute, but doesn't produce any result code. 
</p>
<p><span class="bold"><strong>See Also:</strong></span></p>
<p>execute </p>
<p>
</p>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">F</code></span></p></td>
<td><p>Function to monitor </p></td>
</tr></tbody>
</table></div></td>
</tr></tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ExceptionType<span class="special">,</span> <span class="keyword">typename</span> ExceptionTranslator<span class="special">&gt;</span> 
  <span class="keyword">void</span> <a name="idm44970734584640-bb"></a><span class="identifier">register_exception_translator</span><span class="special">(</span><span class="identifier">ExceptionTranslator</span> <span class="keyword">const</span> <span class="special">&amp;</span> tr<span class="special">,</span> 
                                     <span class="identifier">const_string</span> tag <span class="special">=</span> <span class="identifier">const_string</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> 
                                     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">type</span><span class="special">&lt;</span> <span class="identifier">ExceptionType</span> <span class="special">&gt;</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre>Registers custom (user supplied) exception translator. <p>This method template registers a translator for an exception type specified as a first template argument. For example </p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">myExceptTr</span><span class="special">(</span> <span class="identifier">MyException</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">ex</span> <span class="special">)</span> <span class="special">{</span> <span class="comment">/*do something with the exception here*/</span><span class="special">}</span>
<span class="identifier">em</span><span class="special">.</span><span class="identifier">register_exception_translator</span><span class="special">&lt;</span><span class="identifier">MyException</span><span class="special">&gt;</span><span class="special">(</span> <span class="identifier">myExceptTr</span> <span class="special">)</span><span class="special">;</span>
</pre>
<p> The translator should be any unary function/functor object which accepts MyException const&amp;. This can be free standing function or bound class method. The second argument is an optional string tag you can associate with this translator routine. The only reason to specify the tag is if you plan to erase the translator eventually. This can be useful in scenario when you reuse the same <code class="computeroutput"><a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a></code> instance to monitor different routines and need to register a translator specific to the routine being monitored. While it is possible to erase the translator based on an exception type it was registered for, tag string provides simpler way of doing this. 

</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">tag</code></span></p></td>
<td><p>tag associated with this translator </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">tr</code></span></p></td>
<td><p>translator function object with the signature <span class="emphasis"><em> void (ExceptionType const&amp;)</em></span> </p></td>
</tr>
</tbody>
</table></div></td>
</tr>
<tr>
<td><p><span class="term">Template Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><code class="computeroutput">ExceptionTranslator</code></span></p></td>
<td><p>type of the translator we register for this exception </p></td>
</tr>
<tr>
<td><p><span class="term"><code class="computeroutput">ExceptionType</code></span></p></td>
<td><p>type of the exception we register a translator for </p></td>
</tr>
</tbody>
</table></div></td>
</tr>
</tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">void</span> <a name="idm44970734574432-bb"></a><span class="identifier">erase_exception_translator</span><span class="special">(</span><span class="identifier">const_string</span> tag<span class="special">)</span><span class="special">;</span></pre>Erases custom exception translator based on a tag. <p>Use the same tag as the one used during translator registration 
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Parameters:</span></p></td>
<td><div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><code class="computeroutput">tag</code></span></p></td>
<td><p>tag associated with translator you wants to erase </p></td>
</tr></tbody>
</table></div></td>
</tr></tbody>
</table></div>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ExceptionType<span class="special">&gt;</span> 
  <span class="keyword">void</span> <a name="idm44970734571648-bb"></a><span class="identifier">erase_exception_translator</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type</span><span class="special">&lt;</span> <span class="identifier">ExceptionType</span> <span class="special">&gt;</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre>Erases custom exception translator based on an exception type. <p>tparam ExceptionType Exception type for which you want to erase the translator </p>
</li>
</ol></div>
</div>
<div class="refsect2">
<a name="idm45283074026400"></a><h3>
<a name="idm44970734567344-bb"></a><code class="computeroutput">execution_monitor</code> private member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><pre class="literallayout"><span class="keyword">int</span> <a name="idm44970734566768-bb"></a><span class="identifier">catch_signals</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="special">)</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> F<span class="special">)</span><span class="special">;</span></pre></li></ol></div>
</div>
<div class="refsect2">
<a name="idm45283074014032"></a><h3>
<a name="boost.execution_monitorpublic-data-members"></a><code class="computeroutput">execution_monitor</code> 
        public
       public data members</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a name="boost.execution_monitor.p_catch_system_errors"></a><span class="identifier">p_catch_system_errors</span><span class="special">;</span></pre>
<p>The <span class="emphasis"><em>p_catch_system_errors</em></span> property is a boolean flag (default value is true) specifying whether or not <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> should trap system errors/system level exceptions/signals, which would cause program to crash in a regular case (without <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a>). Set this property to false, for example, if you wish to force coredump file creation. The Unit Test Framework provides a runtime parameter <code class="computeroutput">--catch_system_errors=yes</code> to alter the behavior in monitored test cases. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a name="boost.execution_monitor.p_auto_start_dbg"></a><span class="identifier">p_auto_start_dbg</span><span class="special">;</span></pre>
<p>The <span class="emphasis"><em>p_auto_start_dbg</em></span> property is a boolean flag (default value is false) specifying whether or not <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> should try to attach debugger in case system error is caught. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span> <span class="special">&gt;</span> <a name="boost.execution_monitor.p_timeout"></a><span class="identifier">p_timeout</span><span class="special">;</span></pre>
<p>The <span class="emphasis"><em>p_timeout</em></span> property is an integer timeout (in microseconds) for monitored function execution. Use this parameter to monitor code with possible deadlocks or infinite loops. This feature is only available for some operating systems (not yet Microsoft Windows). </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a name="boost.execution_monitor.p_use_alt_stack"></a><span class="identifier">p_use_alt_stack</span><span class="special">;</span></pre>
<p>The <span class="emphasis"><em>p_use_alt_stack</em></span> property is a boolean flag (default value is false) specifying whether or not <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> should use an alternative stack for the sigaction based signal catching. When enabled the signals are delivered to the <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> on a stack different from current execution stack, which is safer in case if it is corrupted by monitored function. For more details on alternative stack handling see appropriate manuals. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">readwrite_property</span><span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="special">&gt;</span> <a name="boost.execution_monitor.p_detect_fp_exceptions"></a><span class="identifier">p_detect_fp_exceptions</span><span class="special">;</span></pre>
<p>The <span class="emphasis"><em>p_detect_fp_exceptions</em></span> property is a boolean flag (default value is false) specifying whether or not <a class="link" href="execution_monitor.html" title="Class execution_monitor">execution_monitor</a> should install hardware traps for the floating point exception on platforms where it's supported. </p>
</li>
</ol></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2020 Boost.Test contributors<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="execution_exception/error_code.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../header/boost/test/execution_monitor_hpp.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="system_error.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
